A scheduler is utilized, in some existing systems, to select a host for initial placement of powering-on virtual machines (VMs) and manage migrations of VMs to balance resource utilization among the hosts in the cluster. However, these placement and relocation decisions are frequently made based on insufficient information regarding resource demands of the VMs and resource availability of the hosts. For example, most VMs deployed in a cluster of hosts have networking resource requirements. The VMs communicate with other VMs on the same host and/or VMs on different hosts. Currently available schedulers typically only consider processor and memory resources within the cluster when performing scheduling. These schedulers do not consider the VMs' or the hosts' networking behavior when performing placement or load-balancing. This lack of consideration of network resource metrics frequently causes non-optimal VM initial placements and VM migrations, network saturated hosts, overloaded network links, and other network resource contention at the hosts.
For example, some existing schedulers may perform an admission control check to ensure that the sum of network reservations on a VM's outbound (transmit) bandwidth on a host do not exceed its capacity. However, actual usage of a host's network interface controllers (NICs) is not considered with these existing schedulers.
Further, elastic resource provisioning in a software defined datacenter (SDDC) is frequently managed by a number of different schedulers managing different resources independently of one another. For example, some systems computer resources, such as CPU and memory, are managed by a resource scheduler, storage resources are managed by a storage scheduler, and network resources are managed by a separate network scheduler. These different schedulers operate independently from each other and frequently work on different sets of input metrics. The utilization of these disparate schedulers also results in sub-optimal VM placements and inefficient resource management in the datacenter.